蔡翔华(Shawn沙恩)
招商银行信用卡中心技术经理
国内首批ZCP,Zabbix中文手册官方译者。
2018年Zabbix峰会演讲,主题《Zabbix 在 Fintech 环境中的实践》。
2017年Zabbix峰会演讲,主题《Zabbix在企业中的落地以及最佳实践 》。
求:Zabbix Sender无法发送过长内容,怎么破?
解:在DevOps部署过程中,通过Jenkins调用Zabbix Sender将应用部署结果发送给Zabbix中的Item。同时,配置了一个触发器,当该Item有值时,将Item Value通过短信发送给部署管理员。
大致的逻辑如下:
Jenkins(通过Zabbix Sender发送构建结果) --> Zabbix Server --> Action(通过Trigger触发告警,通知管理员)
但是触发的短信有明显被截断的现象,于是开始对这个问题进行排查。
01
首先,由于最先发送短信的平台是Jenkins,先确认Jenkins发送的短信内容是否完整。
确认后,发送的内容是完整的。
02
第二步,看一下接收方:Zabbix上Item的数据,发现数据的确有缺失。
基本定位到了问题,在于Zabbix接受数据产生了异常,由于其他监控没有出现异常,是个别问题,猜测是Item配置有问题,于是看下Item具体的配置。
看上去没什么问题,但是注意这个细节,此处选择的类型为Character,由于并不是无法收集数据,而是数据被截断了,所以怀疑是类型的长度限制。
03
最后,查看官方文档的描述,在数据库中,对于Character类型支持最多255个字符。
于是,将类型改为text,问题得到解决。
此处需要注意,由于类型变化,数据重新存储,历史数据不再显示。
解决思路
回顾这个问题解决的思路,可以归结为narrow down模型:
分解从Jenkins部署到收到短信的全链路环节和关系调用。
从头检查每个环节的输入、输出,是否有异常,定位具体哪个环节出现问题。
发现在Zabbix接受数据环节出现问题后,定位具体的细节,是网络有问题?还是Item配置,或者其他环节?
解决问题,fix it。
Workshop 实践操作课
沙恩老师讲解的具体问题是不是解决了你的疑问?欢迎来2020Zabbix峰会,专家手把手带你实操,精选主题,任你挑选!请带上你的电脑,准备好你的问题!
Zabbix 实践操作
延伸阅读
Zabbix专栏—沙恩说
米宏—Zabbix5.0 快速安装部署教程!够快!
伍昕—美国新能源科技公司Netco从零开始Zabbix的自动化之路
何星—Zabbix自动注册功能实践在线课
张世宏—当代张思德:做技术很孤独,没有弯道超车,但有捷径